<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>JS计算两个日期之间的天数</title>
  </head>

  <body>
    <script type="text/javascript">
      function btnCount_Click() {
        s1 = '2022-07-17'
        s2 = '2021-11-23'
        alert(
          '第一个日期；' +
            s1 +
            '/n第二个日期：' +
            s2 +
            '/n相差' +
            getDays(s1, s2) +
            '天',
        )
      }

      //计算天数差的函数，通用
      function DateDiff(sDate1, sDate2) {
        //sDate1和sDate2是2006-12-18格式
        var aDate, oDate1, oDate2, iDays
        aDate = sDate1.split('-')
        oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为12-18-2006格式
        aDate = sDate2.split('-')
        oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
        iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) //把相差的毫秒数转换为天数
        return iDays
      }

      function getDays(date1, date2) {
        var date1Str = date1.split('-') //将日期字符串分隔为数组,数组元素分别为年.月.日
        //根据年 . 月 . 日的值创建Date对象
        var date1Obj = new Date(date1Str[0], date1Str[1] - 1, date1Str[2])
        var date2Str = date2.split('-')
        var date2Obj = new Date(date2Str[0], date2Str[1] - 1, date2Str[2])
        var t1 = date1Obj.getTime()
        var t2 = date2Obj.getTime()
        var dateTime = 1000 * 60 * 60 * 24 //每一天的毫秒数
        var minusDays = Math.floor((t2 - t1) / dateTime) //计算出两个日期的天数差
        var days = Math.abs(minusDays) //取绝对值
        return days
      }
    </script>
    <input name="" type="button" onclick="btnCount_Click()" value="计算天数" />
  </body>
</html>
